An organization that performs software development can use software configuration management (SCM) to track and control changes in a software project during the software development process. SCM can identify the functional and physical attributes of the software components (e.g., source code files or modules) for the software project at various points in time. SCM can also manage changes to identified attributes of the software components in order to maintain integrity and traceability for the software project throughout the entire software development process.
A SCM system can include revision control. Revision control can track and manage changes to software components. A SCM system that includes revision control can manage software component changes in an environment where the software development is by a team of developers where each member of the team can access and share each software component.
A SCM system can implement revision control using a change recording system or a versioning system. For example, a change recording system can record changes made by developers to software components, keeping track of the changes made on a particular software component, at a specific time by a specific developer. For example, a versioning system can store versions of a software component after each recorded change by a developer. A change recording system may not provide previous versions of the software component as it only maintains a sequential list of changes made to the software component. A versioning system can provide previous versions of the software component.